#ifndef __FTPSERVER_H
#define __FTPSERVER_H


/* FTP服务器参数 */
#define FTP_SERVER_IP    "120.25.168.77"
#define FTP_PORT         "21"
#define FTP_USERNAME     "car"
#define FTP_PASSWORD     "123456"
#define FTP_FILE_NAME    "/car/car.bin"

// 定义FTP指令集
// #define FTP_CMD_AT       "AT\r\n"
// #define FTP_CMD_START    "AT+CFTPSSTART\r\n"
// #define FTP_CMD_LOGIN    "AT+CFTPSLOGIN=\"120.25.168.77\",21,\"car\",\"123456\",0\r\n"
// #define FTP_CMD_PWD      "AT+CFTPSPWD\r\n"
// #define FTP_CMD_GET      "AT+CFTPSGET=\"/car/car.bin\"\r\n"
// #define FTP_CMD_LOGOUT   "AT+CFTPSLOGOUT\r\n"
// #define FTP_CMD_STOP     "AT+CFTPSSTOP\r\n"

#define FTP_CMD_AT       "AT"
#define FTP_CMD_START    "CFTPSSTART"
#define FTP_CMD_LOGIN    "CFTPSLOGIN"
#define FTP_CMD_PWD      "CFTPSPWD"
#define FTP_CMD_GET      "CFTPSGET"
#define FTP_CMD_LOGOUT   "CFTPSLOGOUT"
#define FTP_CMD_STOP     "CFTPSSTOP"


// 服务器参数结构体
typedef struct {
    char ip[17];
    char port[6];
    char username[17];
    char password[17];
    char file_name[65];
} FTP_Server_Config;

extern FTP_Server_Config ftp_server_config;

// FTP服务状态
typedef enum {
    FTP_IDLE,               // 空闲状态
    FTP_START,              // 开启服务状态
    FTP_LOGIN,              // 登录状态
    FTP_RUNNING,            // 运行状态
    FTP_LOGOUT,             // 登出状态
    FTP_STOP                // 关闭服务状态
} FTP_Server_State;


// 命令执行状态
typedef enum {
    CMD_SEND,               // 发送命令
    CMD_WAIT_REPLY          // 等待回复
} FTP_Command_State;


// FTP服务状态
extern FTP_Server_State ftp_server_state;

// FTP服务初始化
void Ftp_Server_Init(void);

// FTP服务处理函数
void Ftp_Server_Process(void);

#endif
